import os  
import re
import shutil  
# 寻找文件夹中的图片列表
def find_folder_images(folder_path, extensions=['.jpg', '.jpeg', '.png', '.gif']):  
    """  
    遍历指定文件夹，并返回所有指定扩展名的图片文件名列表。  
  
    :param folder_path: 要遍历的文件夹路径  
    :param extensions: 关注的图片文件扩展名列表，默认为['.jpg', '.jpeg', '.png', '.gif']  
    :return: 包含图片文件名的列表  
    """  
    image_list = []  
    # 遍历文件夹  
    for root, dirs, files in os.walk(folder_path):  
        for file in files:  
            # 检查文件扩展名是否在关注的列表中  
            if any(file.endswith(ext) for ext in extensions):  
                image_list.append(file)  
    return image_list  
# 寻找文件中的图片列表![1722238383346](
def find_file_images(file_path,extensions='jpg|jpeg|png|gif'):
    role=re.compile(r'!\[[^\n]{1,15}\]\([^\n]{1,30}[\/]([^\n]{1,15}.('+extensions+'))')
    lines=None
    with open(file_path, 'r', encoding='utf-8') as file:  
        lines=file.readlines()  
    image_list=[]
    for line in lines:
        match=role.search(line)
        if match:
            image_list.append(match.group(1))
    return image_list
# 需要检测的文件夹路径
folder_path = 'D:\\study\\git\\lujiahao_test\\python\\assets'  # 替换为你的文件夹路径  
# 无用图片移动到的文件夹路径
target_path = 'D:\\无用图片'
list1=find_folder_images(folder_path)
list2=find_file_images('D:\\study\\git\\lujiahao_test\\python\\在vscode中学习python.md')
for i in list1:
    if not i in list2:
        try:  
            src_file=folder_path+'\\'+i
            dst_file=target_path+'\\'+i
            # 移动文件  
            shutil.move(src_file, dst_file)  
            print(f'文件已从 {src_file} 移动到 {dst_file}')  
        except IOError as e:  
            print(f'无法移动文件: {e.strerror}')  
        except Exception as e:  
            print(f'移动文件时发生错误: {e}')